home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / genie-commodore-file-library / C64-128Toolkit / MSD-DU21.ARC / 64 ASCII DUMP (.txt) next >
Encoding:
Commodore BASIC  |  2019-04-13  |  3.4 KB  |  193 lines

  1. 100 POKE53281,1:PRINT"[147]THIS IS AN ASCII DUMP PROGRAM"
  2. 110 PRINT"[156]FOR THE COMMODORE 64[146]"
  3. 120 PRINT"BY DAVID W. MYERS"
  4. 125 PRINT"     VERSION 2.1  2/6/84 [146]"
  5. 130 FORI=1TO3000:NEXT:BG=0
  6. 140 GOTO1860
  7. 150 PRINT"[147]WHERE TO START DUMP?"
  8. 160 INPUT H$
  9. 170 GOSUB 1700
  10. 180 PRINT"[147]"
  11. 200 GOSUB 1550:DT=PEEK(B)
  12. 210 AS$=CHR$(DT)
  13. 220 IF DT=5THENAS$="WHT"
  14. 230 IF DT=14THENAS$="LOWR C"
  15. 240 IF DT=158THENAS$="YELLOW"
  16. 250 IF DT=159THENAS$="CYAN"
  17. 260 IF DT=18THEN AS$="RVS ON"
  18. 270 IF DT=156THENAS$="PURPLE"
  19. 280 IF DT=144THENAS$="BLACK"
  20. 290 IF DT=31THENAS$="BLUE"
  21. 300 IF DT=30THENAS$="GREEN"
  22. 310 IF DT=28THENAS$="RED"
  23. 320 IF DT=13THEN AS$="<CR>"
  24. 330 IF DT=17THEN AS$="CRSR D"
  25. 340 IF DT=145THEN AS$="CRSR U"
  26. 350 IF DT=157THEN AS$="CRSR L"
  27. 360 IF DT=29THENAS$="CRSR R"
  28. 370 IF DT=19THEN AS$="HOME"
  29. 380 IF DT=147THEN AS$="CLEAR"
  30. 390 IF DT=20THENAS$="DELETE"
  31. 400 IF DT=146THENAS$="RVS OF"
  32. 410 IF DT=141THENAS$="<CR>"
  33. 420 IF DT=149THENAS$="BROWN"
  34. 430 IF DT=150THENAS$="LT RED"
  35. 440 IF DT=151THENAS$="GRAY 1"
  36. 450 IF DT=152THENAS$="GRAY 2"
  37. 460 IF DT=153THENAS$="LT GREEN"
  38. 470 IF DT=154THENAS$="LT BLUE"
  39. 480 IF DT=155THENAS$="GRAY 3"
  40. 490 IF DT=156THENAS$="PURPLE"
  41. 500 PRINT H$ TAB(7) DT TAB(12)AS$
  42. 510 IF (B/21-INT(B/21)) < 0.01 THEN540
  43. 520 B=B+I
  44. 530 GOTO200
  45. 540 GETA$:IFA$=""THEN540
  46. 550 I=1
  47. 560 IFA$="R"THENI=-1
  48. 570 IFA$="X"THEN STOP
  49. 580 IFA$="A"THENGOSUB850
  50. 590 IFA$="H"THENGOSUB670
  51. 600 IFA$="D"THENGOSUB740
  52. 610 IFA$="J"THENGOSUB810
  53. 620 IFA$="C"THENGOSUB980
  54. 630 IFA$="I"THENGOSUB1190
  55. 640 IFA$="P"THENGOTO1440
  56. 650 IFA$="?"THENGOTO1860
  57. 655 IF BG=0THENBG=1:GOTO150
  58. 660 GOTO520
  59. 670 T=B:T$=H$
  60. 680 INPUT "HEX #";H$
  61. 690 GOSUB 1700
  62. 700 PRINT H$" = "B
  63. 710 B=T:H$=T$
  64. 720 PRINT
  65. 730 GOTO 540
  66. 740 T=B:T$=H$
  67. 750 INPUT "DEC #";B
  68. 760 GOSUB 1550
  69. 770 PRINT B" = "H$
  70. 780 B=T:H$=T$
  71. 790 PRINT
  72. 800 GOTO540
  73. 810 INPUT "JUMP TO";H$
  74. 820 GOSUB1700
  75. 830 B=B-1
  76. 840 RETURN
  77. 850 INPUT "WHERE";H$
  78. 860 GOSUB 1700
  79. 870 NN = B
  80. 880 INPUT AX$
  81. 890 A$=LEFT$(AX$,1):IFA$=""THEN 940
  82. 900 QL=LEN(AX$)-1:AX$=RIGHT$(AX$,QL)
  83. 910 W%=INT(ASC(A$)):POKE B,W%
  84. 920 B=B+1
  85. 930 GOTO 890
  86. 940 POKE B,13
  87. 950 B = NN-1
  88. 960 GOSUB 1550
  89. 970 RETURN
  90. 980 PRINT "BEGINNING OF ORIG "
  91. 990 INPUT F$
  92. 1000 PRINT "END OF ORIG "
  93. 1010 INPUT E$
  94. 1020 H$=""
  95. 1030 H$=F$:GOSUB 1700
  96. 1040 F1=B:H$="":H$=E$:GOSUB1700
  97. 1050 E1=B:H$=""
  98. 1060 INPUT "START OF COPYS ";H$
  99. 1070 GOSUB 1700:CC=B
  100. 1080 INPUT "REPEAT TIMES ";RR
  101. 1090 FD = E1-F1+1
  102. 1100 FOR Q=1TORR
  103. 1110 FOR QQ=1TOFD
  104. 1120 Z=(CC+QQ-1+(Q-1)*FD)
  105. 1130 V%=INT(PEEK(F1+QQ-1))
  106. 1140 POKEZ,V%
  107. 1150 NEXT QQ
  108. 1160 NEXT Q
  109. 1170 B=F1-1:GOSUB1550
  110. 1180 RETURN
  111. 1190 REM INSERT SUBROUTINE
  112. 1200 PRINT "[147] WE NEED TO KNOW THREE THINGS"
  113. 1210 PRINT " 1. THE POINT OF INSERTION"
  114. 1220 PRINT " 2. THE NUMBER OF BYTES INSERTED"
  115. 1230 PRINT " 3. THE END OF THE REGION MOVED DOWN"
  116. 1240 PRINT "START OF INSERT"
  117. 1250 INPUT F$
  118. 1260 PRINT "BYTES IN INSERT"
  119. 1270 INPUT E2
  120. 1280 PRINT "END OF SHIFTED MATERIAL"
  121. 1290 INPUT S$
  122. 1300 H$=F$:GOSUB1700
  123. 1310 F1=B:E1=E2+F1-1
  124. 1320 H$=S$:GOSUB1700:S1=B
  125. 1330 EA% = 234 :REM 'NOP' OPCODE
  126. 1340 FOR J9 = F1 TO S1
  127. 1350 J = F1+S1-J9
  128. 1360 KX = (E1+1)+(J-F1)
  129. 1370 POKE KX,PEEK(J)
  130. 1380 NEXT J9
  131. 1390 FOR J = F1 TO E1
  132. 1400 POKE J,EA%
  133. 1410 NEXT J
  134. 1420 B=F1-1:GOSUB1550
  135. 1430 RETURN
  136. 1440 T=B:T$=H$
  137. 1450 INPUT"WHERE ";H$
  138. 1460 GOSUB 1700
  139. 1470 V=B
  140. 1480 PRINT"VALUE:$FF MAX'M"
  141. 1490 INPUT H$
  142. 1500 GOSUB1700
  143. 1510 Z%=INT(B)
  144. 1520 POKEV,Z%
  145. 1530 B=T:H$=T$
  146. 1540 GOTO540
  147. 1550 REM DEC TO HEX
  148. 1560 H$=""
  149. 1570 HEX$="0123456789ABCDEF"
  150. 1580 X%=INT(B/256)
  151. 1590 GOSUB 1630
  152. 1600 X%=INT(B-INT(B/256)*256)
  153. 1610 GOSUB 1630
  154. 1620 RETURN
  155. 1630 Y%=INT(X%/16)
  156. 1640 Z%=X%-Y%*16
  157. 1650 H$=H$+MID$(HEX$,Y%+1,1)
  158. 1660 H$=H$+MID$(HEX$,Z%+1,1)
  159. 1670 RETURN
  160. 1680 :
  161. 1690 REM HEX TO DEC
  162. 1700 REM
  163. 1710 B=0:FORL=1TOLEN(H$)
  164. 1720 B$=MID$(H$,L,1)
  165. 1730 IF B$<"0"THENGOTO1840
  166. 1740 IFB$>"9"THENGOTO1770
  167. 1750 J=VAL(B$)
  168. 1760 GOTO 1810
  169. 1770 FORJ=1TO6
  170. 1780 IFB$=MID$("ABCDEF",J,1)THEN1800
  171. 1790 NEXTJ:GOTO1840
  172. 1800 J=J+9
  173. 1810 B=B*16+J
  174. 1820 NEXTL
  175. 1830 RETURN
  176. 1840 PRINT "BAD HEX #"
  177. 1850 STOP
  178. 1860 PRINT "[147] THE COMMANDS ARE :"
  179. 1870 PRINT "A -- ASCII TYPER"
  180. 1880 PRINT "C -- COPY CODE"
  181. 1890 PRINT "D -- DECIMAL TO HEX"
  182. 1900 PRINT "H -- HEX TO DECIMAL"
  183. 1910 PRINT "I -- INSERT CODE"
  184. 1920 PRINT "J -- JUMP TO NEW LOC"
  185. 1930 PRINT "P -- HEX POKE "
  186. 1940 PRINT "R -- REVERSE DUMP"
  187. 1950 PRINT "X -- EXIT PROGRAM"
  188. 1960 PRINT "? -- DISPLAY MENU"
  189. 1970 PRINT "<SP> CONTINUE DUMP"
  190. 1980 PRINT "[144]PRESS KEY TO CONT "
  191. 1990 GETA$:IFA$=""THEN1990
  192. 2000 GOTO 550
  193.